package com.tiger.project.service;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import com.tiger.common.core.domain.model.LoginUser;
import com.tiger.project.domain.*;
import com.tiger.project.domain.req.ConstructionApplyBack;
import org.springframework.web.multipart.MultipartFile;

/**
 * OA消息待办已办Service接口
 *
 * @author iot
 * @date 2022-12-13
 */
public interface IOainfoService {
    /**
     * 查询OA消息待办已办
     *
     * @param id OA消息待办已办主键
     * @return OA消息待办已办
     */
    public Oainfo selectOainfoById(Long id);

    /**
     * 查询OA消息待办已办列表
     *
     * @param oainfo OA消息待办已办
     * @return OA消息待办已办集合
     */
    public List<Oainfo> selectOainfoList(Oainfo oainfo);

    /**
     * 新增OA消息待办已办
     *
     * @param oainfo OA消息待办已办
     * @return 结果
     */
    public int insertOainfo(Oainfo oainfo);

    /**
     * 修改OA消息待办已办
     *
     * @param oainfo OA消息待办已办
     * @return 结果
     */
    public int updateOainfo(Oainfo oainfo);

    /**
     * 批量删除OA消息待办已办
     *
     * @param ids 需要删除的OA消息待办已办主键集合
     * @return 结果
     */
    public int deleteOainfoByIds(Long[] ids);

    /**
     * 删除OA消息待办已办信息
     *
     * @param id OA消息待办已办主键
     * @return 结果
     */
    public int deleteOainfoById(Long id);


    /**
     * 获取OA审核token
     */
    public String getToken(String userName,String passWord,String LoginName);

    /**
     * 合同发起提交审批
     */
    public String oaContractSponsor(ContractSponsor contractSponsor, LoginUser loginUser) throws IOException;

    /**
     * 租金减免提交审批
     */
    public String oaContractSponsorCredit(ContractSponsorCredit contractSponsorCredit) throws IOException;

    /**
     * 开票申请提交审批
     */
    public String oaContractBill(ContractBill contractBill) throws IOException;

    /**
     * 租金进账提交审批
     */
    public String oaRecord(ContractBill contractBill) throws Exception;

    /**
     * 租金到账提交审批
     */
    public String oaArrival(ContractBill contractBill) throws Exception;

    /**
     * 押金变更提交审批
     */
    public String oaDepositChange(ContractSponsor contractSponsor) throws IOException;

    /**
     * 押金收款提交审批
     */
    public String oaDepositPayee(ContractSponsor contractSponsor) throws IOException;

    /**
     * 押金退款提交审批
     */
    public String oaDepositRefund(ContractSponsor contractSponsor) throws IOException;

    /**
     * 维修项目提交审批
     */
    public String oaMaintenanceApply(MaintenanceApply maintenanceApply) throws IOException;

    /**
     * 建设项目提交审批
     */
    public String oaConstructionApply(ConstructionApply constructionApply) throws Exception;

    /**
     * 验收项目提交审批
     */
    public String oaProjectAcceptance(ProjectAcceptance projectAcceptance) throws IOException;

    /**
     * 合同申请提交审批
     */
    public String oaContract(Contract contract) throws Exception;



    /**
     * 根据登录名获取发起人id  OA
     */
    public Object getLoginId(String token,String loginName);


    /**
     * 获取OA流程详情
     */
    public String getOaUrl(String oaFile,String loginName) throws UnsupportedEncodingException;


    /**
     * PC单点登录--OA
     */
    public String singleLogin(String from,String loginName);


    /**
     * 待办接口--OA
     */
    public String backlog(Integer page,Integer pageSize,String loginName,String token);

    public String replied(Integer page,Integer pageSize,String loginName,String token);


}
